When The Edit Is Code, You Can Diff It
Six steps for editing video without touching a timeline. The whole idea is in the subtitle, and it is worth reading twice:
“Claude writes your edit as code, so every change is one line.”
Then step 1 makes it concrete: “Claude outputs text, not clips. Ask for one HTML scene that draws any frame at time t, so renders never drift.” The code panel shows what that means – a function that takes a timestamp and returns what the screen looks like at that moment.
That is not a gimmick. It is a real engineering idea with a name, and it is the reason the phrase “renders never drift” is in there. If frame 900 is computed from t = 30.0 rather than from frame 899, nothing accumulates. No rounding error, no slow slide out of sync. Every frame is independent and reproducible.
But the bigger consequence is the one the card states in nine words and never unpacks. When the edit is a text file, it stops behaving like a video project and starts behaving like source code.
Think about what a timeline actually is. It is an opaque project file plus a thousand hand gestures that are not recorded anywhere. You cannot read it. You cannot compare Tuesday’s cut with Wednesday’s and see what moved. You cannot undo one decision from the middle without also undoing everything you did after it. And you certainly cannot hand it to a machine and ask what changed.
A text file can do all four.
The post this article is about
Read the original post: “How to edit video with Claude”
Six steps, from treating the edit as code to making the agent review its own render. The tables below reproduce every step as printed, read on 12 October 2026.
What changes when the project file is readable
Here is the comparison the card implies but does not draw. Six ordinary editing situations, and what each one costs in the two models.
Diagram: timeline versus source file
| The situation | On a timeline | When the edit is a text file | Why the gap is this big |
|---|---|---|---|
| “Hold that title one second longer” | Find the clip, grab the edge, drag, check, nudge | Change 3 to 4. One character | The card’s own promise: “every change is one line” |
| “What did I change since yesterday?” | Unanswerable. You watch both and guess | A diff. Every altered line, listed | Text can be compared. A binary project file cannot |
| “Undo just the music decision” | Step back through everything you did after it | Revert that line. The rest is untouched | Decisions are separate lines rather than a stack of gestures |
| “Do the same thing on next week’s video” | Rebuild it, or keep a template project and hope | Import the same file. It is a function | A render that takes time t is reusable by definition |
| “Make fifty versions with different names” | Fifty manual edits | A loop over fifty rows of data | This is the case where the gap stops being a convenience and becomes a different job |
| “Have something check it for errors” | Only your eyes | Step 6 – the agent reviews stills from its own render | Machines can read text and look at images. They cannot inspect your drag history |
Row five is where this stops being a preference and becomes a capability. Fifty localised versions of one explainer, or one template filled with fifty products, is a loop when the edit is code and a fortnight when it is a timeline. If that is your work, nothing on a timeline competes.
Row two is the quiet one. Being able to answer “what changed?” is so normal in software that nobody remarks on it, and so impossible in video editing that nobody even asks. We went through forty-five video editors recently and not one of them can diff two cuts.
The six steps, and what each one actually needs
Column 3 is the one the card leaves out, and it is worth totalling up before you start.
| Step | Quoted as printed | What it requires | Our note – read 12 October 2026 |
|---|---|---|---|
| 1. Treat the edit as code | “Claude outputs text, not clips. Ask for one HTML scene that draws any frame at time t, so renders never drift.” Shown: function render(t) { title.opacity = ease(t, 0, 2) } |
Nothing yet — this is the principle | The load-bearing step. “Any frame at time t” means each frame is computed from the clock, not from the frame before it. That is what makes the render reproducible and the file diffable |
| 2. Cut from the transcript | “Transcribe raw footage first. Claude trims filler from the text and keeps only the strongest moments.” Shown: PODCAST_EP12.MP4, −38 ums, keep 0:45 | A transcription tool | The detachable one, and the best value on the card. You can do step 2 today with no code, no Remotion and no ffmpeg. For most creators this single step is most of the benefit |
| 3. Script and voice it | “Claude drafts the script, then calls a TTS engine via MCP. Request word-level timestamps for exact sync.” Flow: Script → ElevenLabs → Timing | A TTS account, an MCP connection | “Word-level timestamps” is the expert detail here. Sentence-level timing is what makes AI captions drift; asking for per-word is the difference between synced and nearly synced. A synthetic voice is also a disclosure question — see the caveats |
| 4. Add motion graphics | “Lower thirds and kinetic titles become HTML. For long explainers, ask for a Remotion composition.” Shown: “Lower third: Sara Khan, Host. Slide in 1.5s, hold 3s.” → “Done. lower-third.html, brand colors.” | Remotion, and React underneath it | The example is well chosen — a lower third is the most templated object in video, which is exactly what code is good at. Note the reply says “brand colors”, implying a file somewhere defines them. That file is the real asset |
| 5. Render to MP4 | “Playwright captures each frame. ffmpeg joins them into H.264 and adds the audio track.” Pipeline: Scene → Playwright → ffmpeg → MP4 | Playwright, ffmpeg, and patience | The step that costs time and the card does not say so. Capturing each frame through a headless browser means a ten-minute video at 30fps is eighteen thousand screenshots. This is not a quick export |
| 6. Make it check its work | “Before handoff, have Claude review stills from its own render and fix sync or layout issues.” Shown: ✗ “Looks good, exporting now.” ✓ “Checked 12 frames, fixed a late title.” | Nothing extra | The best final step we have seen on any card in this series. It is specific (stills, not vibes), countable (12 frames), names a real failure (a late title), and is built into the pipeline rather than left as homework |
Add up column three
The card presents six steps in six equal panels. Count what they ask you to install and hold in your head: a transcription tool, a TTS account with an MCP connection wired into Claude, Remotion (and therefore React), Playwright, ffmpeg, and enough HTML, CSS and JavaScript to read what Claude hands back and tell whether it is sensible.
That is five external dependencies and a programming language, presented in the same visual weight as “transcribe your footage first”.
And then there is step 5. “Playwright captures each frame” is a sentence that sounds instant and is not. A headless browser screenshotting every frame of a ten-minute video at thirty frames a second is eighteen thousand screenshots. Whether that takes twenty minutes or three hours depends on how heavy your scene is, and nothing on the card hints at the order of magnitude.
None of this makes the approach wrong. It makes it specific. This is a pipeline for a particular kind of video, and for a different kind it is dramatically worse than dragging clips – which is a thing worth knowing before step 1 rather than after step 5.
When this wins, and when a timeline wins
The honest version. Neither column is better; they are good at opposite things.
| Your video | Edit as code | Timeline | Why |
|---|---|---|---|
| A templated explainer you make weekly | Wins easily | Rebuild every time | Same structure, new data. This is the case the whole approach exists for |
| Fifty localised or personalised versions | Wins outright | Not realistically possible | A loop versus fifty afternoons |
| Graphics-heavy: lower thirds, kinetic titles, data | Wins | Slow and fiddly | These objects are already structured data pretending to be pictures |
| A talking-head video cut from a transcript | Step 2 alone wins | Fine, but slower | You do not need the other five steps for this. Take step 2 and leave the rest |
| Footage-heavy: b-roll, interviews, real cameras | Poor fit | Wins | Choosing which take feels right is not a thing you specify in a line of code |
| A one-off video you will never make again | Loses badly | Wins | You pay the whole setup cost and reuse none of it. The pipeline amortises or it is not worth building |
| Anything where the cut is a feel judgement | Poor fit | Wins | Rhythm is decided by watching, not by reading a function |
Row six is the one to check yourself against before you start. A pipeline is an investment that pays back over repetitions. If you are making one video, you will spend the whole setup cost and get a worse result than an afternoon in a normal editor. If you are making the same shape of video every week for a year, the maths inverts completely.
And row four deserves its own line. Step 2 is detachable. Cutting from the transcript needs none of the code, none of Remotion, none of ffmpeg – and for a talking-head creator it is most of the gain on the whole card. If you only take one thing from this, take step 2 and ignore steps 1, 3, 4 and 5 entirely.
Four honest caveats
Step 6 deserves saying loudly, because we have asked for it on every other card in this series and never found it. A card that built an agent from ten tutorials never asked it a question. A card of thirty commands put “check your answer” last, as item thirty of thirty. This one puts verification inside the pipeline, makes it specific – review stills, not vibes – and prints the wrong answer next to the right one: ✗ “Looks good, exporting now.” ✓ “Checked 12 frames, fixed a late title.” That is how a check should be written.
A synthetic voice is a disclosure question. Step 3 generates a voiceover. If the result is realistic and you publish it on YouTube, their GenAI disclosure page is the thing to read – and its own text says disclosing “won’t limit a video’s audience or impact its eligibility to earn money”, so the box is cheap to tick. Using a voice that sounds like a specific real person needs that person’s agreement regardless of what any tool allows.
We have not built this. Everything above is read off the card plus what the named tools are. We have not wired a TTS engine through MCP, rendered anything through Playwright, or measured how long eighteen thousand screenshots actually take on a given machine. The render-time point is arithmetic, not a benchmark.
And the card is honest by omission rather than by claim. It does not promise this is easy, it does not say “no code” anywhere, and the code panel in step 1 shows actual JavaScript. A reader who looks at that panel knows what they are signing up for. Our complaint about column three is that the total is never added up, not that any individual step is misrepresented.
The one-line version
The idea is in the subtitle and it is a good one: when the edit is a text file, it behaves like source code. You can change one line instead of hunting a timeline, diff Tuesday against Wednesday, revert a single decision, reuse the whole thing next week, and generate fifty variants from a loop. No timeline tool on earth does any of that.
The price is five dependencies, a programming language, and a render that screenshots every frame. That price amortises over repetition and nowhere else. Templated weekly explainers and fifty-variant batches: build it. One-off footage-heavy videos cut on feel: open a normal editor and do not look back.
And if you take one step rather than six, take step 2. Cutting from the transcript needs no code at all and delivers most of the benefit for anyone who talks to camera.
Learning a lot does not make anyone good. Doing a lot does. Six steps is a pipeline, and a pipeline only pays on the tenth video – so the honest question before you start is not “can I build this” but “am I going to make ten of these”.
If you want to be held to that, we run a free challenge at BANI Academy. There is no barrier to entry – you commit a small fee that is refunded when you finish, and the only requirement is that you actually do the work for the length of the challenge.
Are you making the same shape of video every week, or a different one every time? That answer decides this entire card. Tell us in the comments under the original post.
More on building a channel for a global audience at mmoyoutube.com.




One Comment